package edu.mercer.sse554.bkp;

/**
 * Reports progress for command being executed.<p>
 * 
 * Command Pattern: progress.<br> 
 * 
 * Extends Command interface, adds progress methods. Provides progress<p>
 *  
 * @param <W> - Generic unbounded, return of execute()
 * 
 * @param <Z> - Generic bounded by Object, return of progress()
 * 
 * @see Command
 */

public interface CommandProgress<W, 
								 Z extends Object> 
				 extends Command<W> 
{
	/**
	 * Progress for Command.<p>
	 * 
	 * Suggested usage: float percentage completed for asynchronous execution
	 * . Example: Future, ListenableFuture...<p>
	 * 
	 * @return Z  Generic bounded by Object
	 */
	
	Z progress();
	
	/**
	 * Progress text based meter.<p>
	 * 
	 * Example: Completed|*****&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |60% <p>
	 * 
	 * @return  String containing character based progress meter
	 */
	
	String textProgressMeter();
	
}//interface
